package com.hxf.dao.role;

import java.util.List;

import com.hxf.dao.BaseDao;
import com.hxf.dto.MenuDto;
import com.hxf.dto.ReturnData;
import com.hxf.dto.RoleDto;
import com.hxf.dto.RoleMenuDto;
import com.hxf.dto.AdminRoleDto;
import com.hxf.exception.DaoLevelException;

/**
 * DAO角色接口
 * @author tengyicheng
 * @version [1.0, 2013/09/22]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public interface RoleDao extends BaseDao {
	/**
	 * 分页查询角色信息
	 * @param roleDto
	 * @param targetPage
	 * @param pageSize
	 * @return
	 * @throws DaoLevelException
	 */
	public ReturnData<RoleDto> findByRole(RoleDto roleDto, int targetPage, int pageSize)throws DaoLevelException;
	
	/**
	 * 查询所有角色信息
	 * @param roleDto
	 * @param targetPage
	 * @param pageSize
	 * @return
	 * @throws DaoLevelException
	 */
	public List<RoleDto> findByRole(RoleDto roleDto)throws DaoLevelException;
	
	/**
	 * 查询已绑定的菜单
	 * @param roleMenuDto
	 * @return
	 * @throws DaoLevelException
	 */
	public List<MenuDto> findByRoleMenu(RoleMenuDto roleMenuDto)throws DaoLevelException;
	
	/**
	 * 根据权限权限id 删除信息权限关联菜单
	 * @param id
	 * @return
	 * @throws DaoLevelException
	 */
	public int deleteRoleMenuByRoleId(Integer roleId) throws DaoLevelException;
	
	/*
	 * 根据登陆用户ID,查询该用户所拥有的权限
	 */
	public ReturnData<RoleDto> findByUserRole(RoleDto roleDto, int targetPage, int pageSize) throws DaoLevelException;
}
